Text Editors Tutorial
Linux tizimida matn tahrirlovchilar DevOps muhandislari uchun eng muhim vositalardan biridir. Har bir editor o'zining afzalliklari va kamchiliklariga ega.
nano - Boshlang'ich Foydalanuvchilar Uchun
nano ga Kirish
nano - bu oddiy va oson foydalaniladigan terminal-based matn tahrirlovchi. Yangi boshlaganlar uchun eng yaxshi tanlov.
nano ni Ishga Tushirish
# Yangi fayl yaratish
nano filename.txt
# Mavjud faylni ochish
nano /etc/nginx/nginx.conf
# Readonly mode da ochish
nano -v filename.txt
# Line numbers bilan ochish
nano -l filename.txt
# Auto-indent bilan
nano -i filename.txt
# Tab size o'rnatish
nano -T 4 filename.txt
nano da Asosiy Harakat Tugmalari
nano'da barcha buyruqlar ekranning pastki qismida ko'rsatiladi:
Ctrl + G Help menu ni ochish
Ctrl + X Chiqish (saqlash so'rashi bilan)
Ctrl + O Saqlash (Write Out)
Ctrl + R Boshqa faylni o'qish/qo'shish
Ctrl + W Qidirish
Ctrl + \ Qidirish va almashtirish
Ctrl + K Qatorni kesish
Ctrl + U Kesgan qatorni qo'yish
Ctrl + J Justify (matnni tekislash)
Ctrl + T Spell checker
Ctrl + C Cursor pozitsiyasini ko'rsatish
Ctrl + _ Ma'lum qatorga o'tish
nano da Navigation
Ctrl + A Qator boshiga
Ctrl + E Qator oxiriga
Ctrl + Y Sahifa yuqoriga
Ctrl + V Sahifa pastga
Ctrl + F Bir belgi o'ngga
Ctrl + B Bir belgi chapga
Ctrl + P Yuqori qatorga
Ctrl + N Pastki qatorga
Alt + A Mark text boshlanishi
Alt + 6 Copy marked text
Ctrl + K Cut marked text yoki joriy qator
Ctrl + U Paste
DevOps uchun nano Amaliy Misollar
# SSH konfiguratsiyasini tahrirlash
nano ~/.ssh/config
# Nginx virtual host yaratish
sudo nano /etc/nginx/sites-available/mysite
# Environment variables tahrirlash
nano ~/.bashrc
# Docker compose fayl yaratish
nano docker-compose.yml
# Kubernetes deployment yaratish
nano deployment.yaml
# Crontab tahrirlash
crontab -e # nano ni default editor sifatida tanlasa
nano Konfiguratsiyasi
~/.nanorc faylida nano ni konfiguratsiya qilish mumkin:
# ~/.nanorc
set linenumbers # Line numbers ko'rsatish
set mouse # Mouse support
set smooth # Smooth scrolling
set tabsize 4 # Tab size
set autoindent # Auto indentation
set cut # Cut empty lines
include /usr/share/nano/*.nanorc # Syntax highlighting
vim - Kuchli va Samarali Editor
vim ga Kirish
vim (Vi IMproved) - bu juda kuchli va professional matn tahrirlovchi. O'rganish qiyin, lekin o'rgangandan keyin juda samarali.
vim Modes (Rejimlar)
vim da 3 ta asosiy rejim mavjud:
- Normal Mode (Default) - Navigation va buyruqlar
- Insert Mode - Matn yozish
- Command Mode - Buyruqlar berish
vim ni Ishga Tushirish
# Yangi fayl yaratish
vim filename.txt
# Mavjud faylni ochish
vim /etc/hosts
# Read-only mode
vim -R filename.txt
# Multiple files
vim file1.txt file2.txt
# Specific line ga ochish
vim +25 filename.txt
# Pattern bilan ochish
vim +/pattern filename.txt
# Binary mode
vim -b filename
vim da Rejimlar Orasida O'tish
Normal Mode dan Insert Mode ga:
i Insert - cursor oldidan
a Append - cursor keyinidan
o New line - pastga yangi qator
O New line - yuqoriga yangi qator
I Insert - qator boshidan
A Append - qator oxiridan
Insert Mode dan Normal Mode ga:
Esc Escape tugmasi
Normal Mode dan Command Mode ga:
: Colon tugmasi
vim Normal Mode Commands
Navigation
h Chapga
j Pastga
k Yuqoriga
l O'ngga
w Keyingi so'z boshiga
b Oldingi so'z boshiga
e So'z oxiriga
0 Qator boshiga
$ Qator oxiriga
^ Qatordagi birinchi belgiga
gg Fayl boshiga
G Fayl oxiriga
5G 5-qatorga o'tish
Ctrl+f Sahifa pastga
Ctrl+b Sahifa yuqoriga
Ctrl+d Yarim sahifa pastga
Ctrl+u Yarim sahifa yuqoriga
Editing Commands
x Belgi o'chirish
dd Qatorni o'chirish
dw So'zni o'chirish
d$ Qator oxirigacha o'chirish
d0 Qator boshigacha o'chirish
yy Qatorni copy qilish
yw So'zni copy qilish
y$ Qator oxirigacha copy
p Paste (keyindan)
P Paste (oldindan)
u Undo
Ctrl+r Redo
. Oxirgi commandni takrorlash
Search and Replace
/pattern Qidirish (oldinga)
?pattern Qidirish (orqaga)
n Keyingi match
N Oldingi match
:%s/old/new/g Barchasini almashtirish
:%s/old/new/gc Tasdiqlash bilan almashtirish
:5,10s/old/new/g 5-10 qatorlarda almashtirish
vim Command Mode
File Operations
:w Saqlash
:w filename Boshqa nom bilan saqlash
:wq Saqlash va chiqish
:q Chiqish
:q! Majburan chiqish (saqlamasdan)
:x Saqlash va chiqish (ZZ bilan bir xil)
:e filename Boshqa faylni ochish
:e! Faylni qayta yuklash
:r filename Boshqa faylni qo'shish
Line Operations
:25 25-qatorga o'tish
:$ Oxirgi qatorga
:1 Birinchi qatorga
:.,$d Joriy qatordan oxirigacha o'chirish
:5,10d 5-10 qatorlarni o'chirish
:5,10y 5-10 qatorlarni copy qilish
Settings
:set number Line numbers ko'rsatish
:set nonumber Line numbers yashirish
:set hlsearch Search highlight
:set nohlsearch Search highlight o'chirish
:set tabstop=4 Tab size
:set expandtab Tab ni space ga aylantrish
:syntax on Syntax highlighting yoqish
DevOps uchun vim Amaliy Misollar
1. Configuration File Editing
# Apache virtual host tahrirlash
sudo vim /etc/apache2/sites-available/000-default.conf
# vim da:
# - /DocumentRoot/ bilan qidirish
# - i bilan insert mode
# - path o'zgartirish
# - Esc, :wq bilan saqlash va chiqish
2. Log File Analysis
# Log faylni ochish
vim /var/log/nginx/error.log
# vim da:
# - G bilan oxiriga o'tish
# - ?ERROR bilan error qidirish
# - n bilan keyingi error topish
3. Multi-file Editing
# Multiple files ochish
vim nginx.conf ssl.conf
# vim da:
:n # Keyingi fayl
:prev # Oldingi fayl
:files # Ochiq fayllar ro'yxati
:e file3 # Uchinchi fayl qo'shish
4. Advanced Editing Techniques
# vim da macro recording
qa # 'a' registriga macro yozishni boshlash
# ... buyruqlar ...
q # Macro yozishni tugatish
@a # 'a' macrosini ishga tushirish
@@ # Oxirgi macrosini takrorlash
# Visual mode
v # Character visual mode
V # Line visual mode
Ctrl+v # Block visual mode
# Block operations
Ctrl+v # Block select
I # Insert at beginning of each line
A # Append at end of each line
vim Konfiguratsiyasi (.vimrc)
~/.vimrc faylida vim ni konfiguratsiya qilish:
# ~/.vimrc
set number " Line numbers
set tabstop=4 " Tab size
set shiftwidth=4 " Indent size
set expandtab " Use spaces instead of tabs
set autoindent " Auto indentation
set hlsearch " Highlight search
set incsearch " Incremental search
set ignorecase " Case insensitive search
set smartcase " Smart case search
syntax on " Syntax highlighting
set mouse=a " Mouse support
" Color scheme
colorscheme desert
" Key mappings
map <F2> :w<CR> " F2 for save
map <F3> :q<CR> " F3 for quit
" DevOps specific settings
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
autocmd FileType json setlocal ts=2 sts=2 sw=2 expandtab
emacs - GNU Emacs Editor
emacs ga Kirish
emacs - bu kuchli va kengaytirilishi mumkin bo'lgan matn tahrirlovchi. "An extensible, customizable, free/libre text editor — and more."
emacs ni Ishga Tushirish
# Terminal mode da
emacs filename.txt
# GUI mode da
emacs &
# Terminal mode da majburlash
emacs -nw filename.txt
# No init file
emacs -q filename.txt
emacs Key Bindings (Tugma Birikmalari)
emacs da C- Control tugmasini, M- Meta (Alt) tugmasini bildiradi.
File Operations
C-x C-f Find file (ochish)
C-x C-s Save file
C-x C-w Save as
C-x C-c Exit emacs
C-x C-v Find alternative file
Navigation
C-f Forward character
C-b Backward character
C-p Previous line
C-n Next line
C-a Beginning of line
C-e End of line
M-f Forward word
M-b Backward word
M-< Beginning of buffer
M-> End of buffer
C-v Page down
M-v Page up
Editing
C-d Delete character
M-d Delete word
C-k Kill line
M-k Kill sentence
C-w Cut region
M-w Copy region
C-y Paste (yank)
C-/ Undo
C-x u Undo
Search and Replace
C-s Forward search
C-r Reverse search
M-% Query replace
M-x replace-string Replace all
Windows and Buffers
C-x 2 Split window horizontally
C-x 3 Split window vertically
C-x 1 Close other windows
C-x 0 Close current window
C-x o Switch to other window
C-x b Switch buffer
C-x k Kill buffer
C-x C-b List buffers
DevOps uchun emacs Amaliy Misollar
1. Configuration Management
# emacs da YAML file tahrirlash
emacs kubernetes-deployment.yaml
# emacs da:
# M-x yaml-mode (agar installed bo'lsa)
# Syntax highlighting va indentation
2. Multiple Files
# emacs da:
C-x C-f # New file ochish
C-x b # Buffer switch
C-x 2 # Window split
C-x o # Window switch
3. emacs Packages
;; ~/.emacs yoki ~/.emacs.d/init.el
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
;; DevOps uchun foydali packages
;; - yaml-mode
;; - dockerfile-mode
;; - terraform-mode
;; - ansible-mode
;; - kubernetes-mode
Editor Tanlash Bo'yicha Tavsiyalar
nano - Qachon Foydalanish
- Yangi boshlaganlar uchun
- Tez kichik o'zgarishlar uchun
- Remote server'larda qisqa tahrirlash
- Script'larda automatic editing uchun
# Script'da nano ishlatish
echo "new_setting=value" | sudo tee -a /etc/config.conf
# yoki
sudo nano /etc/config.conf
vim - Qachon Foydalanish
- Katta fayllar bilan ishlash
- Professional development
- Remote server'larda intensive work
- Performance muhim bo'lganda
# vim shortcuts for DevOps
# Configuration file quick edit
vim /etc/nginx/nginx.conf +25 # 25-qatordan boshlash
# Multiple files
vim *.yaml # Barcha yaml fayllar
# Read-only viewing
view /var/log/syslog # vim readonly mode
emacs - Qachon Foydalanish
- IDE kabi imkoniyatlar kerak bo'lganda
- Programming development
- Extensive customization uchun
- Long editing sessions
Amaliy DevOps Stsenarilar
1. Emergency Configuration Fix
# Server'da muammo, tezda nginx config tuzatish kerak
sudo nano /etc/nginx/nginx.conf
# yoki vim bilan
sudo vim /etc/nginx/nginx.conf
2. Log File Investigation
# Katta log faylni tahlil qilish
vim /var/log/syslog
# vim da:
# - /ERROR bilan error qidirish
# - n bilan keyingi error
# - G bilan oxiriga
3. Script Writing
# Deployment script yozish
vim deploy.sh
# vim da:
# - :set number
# - Syntax highlighting
# - Easy navigation
4. Configuration Templates
# Docker compose template
nano docker-compose.yml
# Template structure:
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
5. Kubernetes Manifest Editing
# vim bilan YAML editing
vim deployment.yaml
# vim da YAML uchun settings:
# :set tabstop=2
# :set expandtab
# :set autoindent
Editor Productivity Tips
1. Environment Variables
# Default editor o'rnatish
export EDITOR=vim
export VISUAL=vim
# Git uchun editor
git config --global core.editor vim
2. Aliases
# .bashrc da
alias v='vim'
alias n='nano'
alias e='emacs -nw'
3. Quick Edit Functions
# .bashrc da
function vconf() {
vim ~/.bashrc
}
function reload() {
source ~/.bashrc
}
Bu tutorial text editor'lar bo'yicha DevOps engineers uchun zarur bo'lgan barcha asosiy ma'lumotlarni qamrab oladi. Har bir editor o'z joyida foydali va maqsadga muvofiq tanlov qilish muhimdir.